package com.ppc.service;

import com.ppc.dto.EmployerChangeInfoDTO;
import com.ppc.dto.EmployerLoginDTO;
import com.ppc.dto.UserLoginVerifyCodeDTO;
import com.ppc.vo.EmployerDataVO;
import com.ppc.vo.EmployerLoginVO;
import java.util.List;
import org.springframework.web.multipart.MultipartFile;

/**
 * 雇主账号Service
 *
 * @author LENOVO
 * @date 2023/12/20
 */
public interface EmployerService {

  Long uploadImg(MultipartFile file);

  /**
   * @param fileId
   * @return {@link String }
   * @description
   */
  String downFile(Long fileId);

  /**
   * @description
   */
  void upregister();


  /**
   * 雇主登录
   *
   * @param employeeLoginDTO
   * @return {@link EmployerLoginVO}
   */
  EmployerLoginVO login(EmployerLoginDTO employeeLoginDTO);

  /**
   * 查看资料
   *
   * @return {@link EmployerDataVO}
   */
  EmployerDataVO checkData();

  /**
   * 查看信誉
   *
   * @return int
   */
  int checkCredit();

  /**
   * 雇主充值
   * @param amount
   */
  void employerRecharge(Float amount);

  /**
   * 评价工人
   *
   * @param taskId
   * @param workerRating
   */
  void commentWorker(Long taskId, int workerRating);

  /**
   * 更新工人信誉
   *
   * @param taskId
   * @param workerRating
   */
  void updateWorkerCredit(Long taskId, int workerRating);

  /**
   * 创建信誉记录
   *
   * @param taskId
   * @param workerRating
   */
  void createCreditRecording(Long taskId, int workerRating);

  /**
   * 查看信誉记录
   *
   * @param userId
   * @return {@link List}<{@link String}>
   */
  List<String> checkCreditRecording(Long userId);

  /**
   * 查看金额记录
   *
   * @param userId
   * @return {@link List}<{@link String}>
   */
  List<String> checkCountRecording(Long userId);

  /**
   * 查看金额
   *
   * @return int
   */
  Float checkWallet();

  /**
   * 更改个人信息
   *
   * @param employerChangeInfoDTO
   */
  void changeInformation(EmployerChangeInfoDTO employerChangeInfoDTO);

  EmployerLoginVO loginVerfiy(UserLoginVerifyCodeDTO userLoginVerifyCodeDTO);
}
